Cellular multiprocessing (CMP) is a computing architecture developed by Unisys Corporation that may use central processing units (CPUs) developed by Intel Corporation, CPUs that are compatible with those developed by Intel Corporation, proprietary Unisys CPUs, or other CPUs. Some currently available CMP systems may include up to 32 processors that are crossbar connected to up to 512 GB of memory, 512 MB of shared cache, and up to 40 I/O channels. A CMP system provides mainframe-like architecture, yet can support a number of commonly available commercial operating systems (OS), including some server version of Windows™ and some Unix-based and Unix-like operating systems.
A “processing” cell generally refers to a group of processors, memory, and I/O that can be used alone or combined with other cells to form a symmetrical multiprocessing (SMP) system. For example the Unisys ES7000/one server allows users to combine up to eight system cells, each with four Intel Itanium 2 or Xeon processors and 64 GB of main memory for a total of 32 processors and half a terabyte of memory. Each cell contains a CMP crossbar, which connects memory, processors and I/O within the cell. The architecture of Unisys CMP systems is such that cells are often delivered as cell-pairs.
A CMP can be arranged as one large SMP system, or may be partitioned into multiple systems each capable of running a different operating system. For example, a 32 processor CMP can be partitioned into two partitions of 16 processors each, or four partitions of four processors each. These partitions can each have an OS installed, with each OS viewing the partition as a separate machine.
Enterprise CMP servers are often deployed to handle mission-critical computing. As such, these systems include high availability features such as redundant configurations, multiple power domains, resilient I/O configurations, and hot-swappable hardware components. Such systems also employ automated monitoring systems that enable such to be self-monitoring and self-healing. These automated functions dramatically reduce the need for hands-on server management and increase the overall availability.
Generally, system monitoring is provided by a separate processor sometimes referred to as a service processor. This service processor may provide features such as status indicators for notification of system health, quick troubleshooting hardware/software alerts for all monitored servers, and real-time CPU and memory utilization information. The service processor may also apply out-of-band configurations of the target cell, such as by setting/modifying boot time environmental parameters, configuring/reassigning I/O resources, etc. The service processor itself may be considered a high reliability server, although one with a specific role related to maintaining the health of one or more CMP cells.
In order to increase the scalability of CMP machines, some of the service processor functionality has been broken out into a device sometimes referred to as a remote scan machine. A remote scan machine is generally a low-cost, embedded computer that contains the low-level hardware functions needed to directly interface with a CMP cell or cell pair. A service processor works in close cooperation with one or more remote scan machines, and different scan machines may be running different types and versions of the OS.
Because the service processor and remote scan machines are independent computing devices, they typically require periodic updates of software for purposes such as feature upgrades and bug fixes. In previous CMP machines, where the service processor and remote scan machine were one and the same, this meant updating only one machine. However, where such functionality has been segregated between two or more independent hardware components, the work involved in updating software increases by a factor of two or more times. Not only does the service processor itself need updating, but so do all remote scan machines with which the service processor operates.
Therefore, a way of automatically and contemporaneously updating distributed machines such as a service processor and remote scan machine is desirable. Further, this update mechanism should be usable in a heterogeneous computing environment that may utilize different operating systems and processor architectures.